CBMSTEVE.CA - CBM-II Cartridges Project
CBMSTEVE.CA - Personal pages of Steve J. Gray
Changes Info Prototypes Remakes PET Projects CBM Projects Modding 3D Models KiCad Github Ohio Scientific Other My Software My Collections Facebooks

The CBM-II Cartridge Project

Introduction

Welcome! This is a project to create new CBM-II plug-in cartridges. Currently I am planning to design two different versions. The first will be a ROM cartridge, and the second a combination RAM and ROM cartridge. My idea is to use much larger capacity, currently available, RAM and ROM chips so that the boards are small and cheap to build. I am also looking at possibly cloning some of the original cartridges for those wanting more authentic carts that are no longer available.

A CBM-II cart plugs into the cartridge port using a 30-pin PCB edge connector. This is not an "expansion" port as it is designed mostly for adding ROM and as such there are limited signals on the connector. The typical ROM size from that period was 8K and so they have CHIP SELECT lines for three 8K ROMS for a total of 24K of address range. Most cartridges at the time fit in a typical C64 cartridge case.

Although RAM or ROM carts are typical, it is possible to have both RAM and ROM or even cartridges with IO chips or other types of peripheral chips. I am not aware of any non-RAM/ROM cartridges.

Cartridges are mapped into BANK 15, which is the "system" BANK where the normal BASIC, EDITOR, and KERNAL ROMS are as well as a small amount of system RAM, the VIDEO and I/O chips, and VIDEO RAM. The 3 memory ranges (or SLOTS) are $2000-3FFF, $4000-5FFF, and $6000-7FFF.

The CBM-II BANK 15 memory map is mostly full, but there are two DECODED ranges that are reserved for planned internal expansions. The first is $1000-1FFF (4K)which was designated as DISK ROM, and was reserved for the Low-Cost DMA drive. The second is the area at $C000-CFFF (4K) which is the CHARACTER ROM in the P-series machine, but is unused in the B-series. I plan on supporting these areas where possible in my designs.

The CBM-II KERNAL ROM supports an auto-start feature, where it scans the cartridge space for a specific header at a specific location and if detected will automatically initialize it at bootup time. Whichever valid header is found first will be started. Code in other SLOTs will not.

New Designs

256K ROM Cart

The first design is a switchable ROM cartridge. I decided to use a 32-pin PLCC EEPROM. They are available, large capacity, low power, and inexpensive. An EEPROM also has the advantage that it can be updated many times as needs change. This cartridge supports 128K or 256K EEPROM chips. With the 128K chip you will get 4 possible ROMSETs of 24K. Each ROMSET fills the entire 24K SLOT space, although it takes 32K of the EEPROM space. With the 256K chip you will get 8 ROMSETs. This cartridge would be perfect for a large game or application that might use all 24K of address space at once. It is possible to use EACH slot for an individual application as long as they are designed to run from that specific SLOT and that co-exists with the apps in the other SLOTs. There are 4 DIP switches, 3 of which select the ROM SET, and one which Enables/Disables the cartridge.

One last feature of the cart is the ability to add ROM to one of the unused reserved/decoded CBM-II ranges ($1000 or $C000). This involves connecting a wire inside the machine to the PLA chip and running it out through the cartridge slot and connecting it to the EXT CHIP SELECT header.

STATUS:The design is complete and tested working. The design has been posted on Github.

One of the applications planned for this cartridge is the "8432 PET Emulator". This emulator is loaded from disk and is able to use each available RAM BANK as a separate PET machine. On 128K machines this gives 2 machines, and on 256K machines up to 4 machines. Machines with expanded memory can allow up to 14 machines, all of which are independant. I am adapting the emulator it to load directly from cartridge ROM so that it is immediately available. You can find my version of the emulator on Github here: CBM-II-PET-Emulator. As of 2025-05-09 it is working but not complete.

RAM/ROM Cart

The second design is a combination RAM and ROM cart. The ROM features are the same as the ROM Cart above, plus there is a 64K RAM chip which you can map 24K in the 3 cartridge slots spaces ($2000-$7FFF) plus one or two additional 4K external spaces ($1000-$1FFF or $C000-CFFF), so 32K in total. The entire cartridge can be disabled if desired, plus you can also write-protect the RAM.

STATUS: Working as expected! Design is posted on Github.

Cloned Cartridges

I currently have a couple HANDIC 16K ROM carts (1030), which is a simple two socket design. The cartridges I have were converted to RAM by piggybacking an additional SRAM chip and an additional TTL logic chip onto it to turn it into a 24K RAM cartridge. Because of this I do not have a full view of the circuitry. At some point I might remove the mod to inspect the board more closely to clone it.

I also have schematics for the Anderson Communication Engineering cartridge although I do not have an actual cartridge. If anyone has one that they can scan or take detailed pictures of, please contact me.

GITHUB

All designs, kicad files, gerbers, and sample EEPROM binaries will be avilable on Github when the designs are complete.

The Github repository can be found here: https://github.com/sjgray/CBM-II-Carts

HISTORY

Contact

Created: 2024-04-12. Last updated: May 15/2025, 5:00pm EST

Send comments or feedback to Steve Gray(sjgray@rogers.com)